Portable Anymap Format (PNM) |
PNM is a collection of three image formats: The Portable PixMap Format (PPM with RGB colors from 0 to 255), the Portable GrayMap Format (PGM with gray scales colors from 0 to 255), and the Portable BitMap Format (PBM with two colors: black and white). They are file formats designed to exchange images between platforms. PNM es una colección de tres formatos de imagen: el Formato Portable Pixmap (PPM con colores RGB desde 0 a 255), el Formato Portable de Mapas de Grises (PGM con colores en la escala de grises de 0 a 255) y el Formato Portable de Bitmaps (PBM con dos colores: blanco y negro). Estos son formatos de archivos diseñados para intercambiar imágenes entre distintas plataformas. |
File Format Description |
The file starts with the P character (one-byte in ASCII). After that there is a number:
El archivo comienza con la letra P (un byte en ASCII). Después de este hay un número:
|
Format | Bytes per pixel (binary format) |
PBM | 1 (black = 0 and white = 1) |
PGM | 8 (black = 0,..., gray = 128, ..., white = 255) |
PPM | 24 (8 bits for red, 8 bits for green, 8 bits for blue) |
Comments |
Each line that begins with the # characters is considered a comment, and therefore, this line is ignored. Cada línea que comienza con el carácter # es considerada un comentario, y por lo tanto, ésta línea es ignorada. |
Problem 1 |
Create a Wintempla Window application called PpmViewer to display a PPM image (Be sure to choose Window Application instead of Dialog Application when creating the project). Do not forget to check the Paint event in the main window (Open Wintempla, double click anywhere in the editor to open the Window Properties dialog, in the Event tab: check Paint). For this problem you will need a PPM file, you may convert any image file to a PPM file using an online image converter in the Internet. Cree una aplicación de Ventana usando Wintempla llamada PpmViewer para mostrar una imagen PPM (Asegúrese de escoger Window Application en lugar de Dialog Application cuando cree el proyecto). No se olvide de marcar el evento Paint en la ventana principal. (Abra Wintempla, haga doble clic en cualquier parte del editor para abrir el diálogo de Propiedades de la Ventana, en la pestaña de Event: seleccione Paint). Para este problema usted necesitará un archivo PPM, usted puede convertir cualquier archivo de imagen a un archivo PPM usando un convertidor de imágenes online en la Internet. |
PpmViewer.h |
#pragma once //______________________________________ PpmViewer.h #include "Resource.h" class PpmViewer: public Win::Window { public: PpmViewer() { } ~PpmViewer() { } CG::DIBitmap bitmap; . . . }; |
PpmViewer.cpp |
. . . // REMEMBER THAT THIS IS A WINDOW APPLICATION void PpmViewer::Window_Open(Win::Event& e) { const wchar_t* error = bitmap.ImportPortablePixMap(L"sky.ppm"); if (error != NULL) { this->MessageBox(error, L"PpmViewer", MB_OK | MB_ICONERROR); } this->Repaint(NULL, true); } void PpmViewer::Window_Paint(Win::Event& e) { CG::Gdi gdi(hWnd, true, false); gdi.DrawBitmap(bitmap, 0, 0); } |